package edu.kufpg.armatus.dialog;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ListView;
import com.google.common.collect.Lists;
import edu.kufpg.armatus.R;
import edu.kufpg.armatus.util.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
/**
* KeywordSwapDialog Class, this class extends {@link android.app.DialogFragment DialogFragment} class.
* This class makes all the dialog within the keyword swap.
*/
public class KeywordSwapDialog extends ConsiderateDialog {
private int mEntryNum;
private String mEntryContents;
private ArrayList<String> mEntryWords;
private ListView mKeywordListView;
private KeywordSwapAdapter mKeywordAdapter;
private Button mResetButton, mToastButton;
/**
* Static KeywordSwapDialog Instance Function. This function creates a new instance with a entry number and its contents.
* @param entryNum
* @param {@link java.lang.String entryContents}
* @return
*/
public static KeywordSwapDialog newInstance(int entryNum, String entryContents) {
KeywordSwapDialog ksd = new KeywordSwapDialog();
Bundle args = new Bundle();
args.putInt("entryNum", entryNum);
args.putString("entryContents", entryContents);
ksd.setArguments(args);
return ksd;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mEntryNum = getArguments().getInt("entryNum");
mEntryContents = getArguments().getString("entryContents");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View v = inflater.inflate(R.layout.keyword_swap_dialog, container, false);
setCancelable(true);
getDialog().setTitle("Entry number " + String.valueOf(mEntryNum));
mKeywordListView = (ListView) v.findViewById(R.id.keyword_swap_list);
if (savedInstanceState == null) {
mEntryWords = Lists.newArrayList(mEntryContents.split(StringUtils.WHITESPACE));
} else {
mEntryWords = savedInstanceState.getStringArrayList("entryWords");
}
mKeywordAdapter = new KeywordSwapAdapter(getActivity(), mEntryWords);
mKeywordListView.setAdapter(mKeywordAdapter);
mResetButton = (Button) v.findViewById(R.id.keyword_swap_reset);
mResetButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mEntryWords = new ArrayList<String>(Arrays.asList(mEntryContents.split(StringUtils.WHITESPACE)));
mKeywordAdapter = new KeywordSwapAdapter(getActivity(), mEntryWords);
mKeywordListView.setAdapter(mKeywordAdapter);
mKeywordAdapter.notifyDataSetChanged();
}
});
mToastButton = (Button) v.findViewById(R.id.keyword_swap_toast);
mToastButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
StringBuilder builder = new StringBuilder();
for (String word : mEntryWords) {
builder.append(word).append(' ');
}
getConsole().showToast(builder.toString().trim());
}
});
return v;
}
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putStringArrayList("entryWords", mEntryWords);
super.onSaveInstanceState(outState);
}
}